<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;

class Fields extends Common
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {   
        $res=model('Fields')->field('f.*,m.model_name')->alias('f')
        ->join('models m','m.id=f.model_id')
        ->paginate(15);
        $this->assign('res',$res);
        return view();
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        $id=input('id');
        $model=db('models')->field('id,model_name')->select();
        $this->assign([
            'id'=>$id,
            'model'=>$model,
        ]);
        return view();
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        if (request()->isPost()) {
            $data=$request->param();
           if ($data['values']) {
                $data['values']=str_replace('，',',',$data['values']);
           }
           $validate=validate('Fields');
           if (!$validate->check($data)) {
               $this->error($validate->getError());
           }
           $res=model('Fields')->allowField(true)->save($data);
           if ($res) {
              $this->success('字段添加成功','index');
           }
           $this->error('字段添加失败');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {   
        
        $model=db('models')->field('id,model_name')->select();
        $res=model('Fields')->find($id);
        $this->assign([
            'res'=>$res,
            'model'=>$model,
        ]);
        return view();
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        if (request()->isPost()) {
            $data=$request->param();
            if ($data['values']) {
                $data['values']=str_replace('，',',',$data['values']);
           }
           $validate=validate('Fields');
           if (!$validate->scene('edit')->check($data)) {
               $this->error($validate->getError());
           }
           $res=model('Fields')->allowField(true)->save($data,['id' =>$id]);
           if ($res) {
              $this->success('字段编辑成功','index');
           }
           $this->error('字段编辑失败');
        }
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        if(request()->isPost()){
            $del=model('Fields')->destroy($id);
            if ($del) {
               return json(['code'=>1,'msg'=>'删除成功']);
            }
            return json(['code'=>2,'msg'=>'删除失败']);
        }
    }
}
